Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестКонструктор");
	СписокТестов.Добавить("TestConstructor");
	СписокТестов.Добавить("ТестЗначение");
	СписокТестов.Добавить("ТестЛексическоеЗначение");
	СписокТестов.Добавить("ТестОпределениеПростогоТипа");

	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестКонструктор() Экспорт
	
	Фасет = Новый ФасетПробельныхСимволовXS;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(Фасет), Тип("ФасетПробельныхСимволовXS"));
	ЮнитТест.ПроверитьРавенство(Фасет.ТипКомпоненты, ТипКомпонентыXS.ФасетПробельныхСимволов);

КонецПроцедуры

Процедура TestConstructor() Экспорт

	Facet = New XSWhitespaceFacet;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(Facet), Тип("XSWhitespaceFacet"));
	ЮнитТест.ПроверитьРавенство(Facet.ComponentType, XSComponentType.WhitespaceFacet);

КонецПроцедуры

Процедура ТестЗначение() Экспорт

	Фасет = Новый ФасетПробельныхСимволовXS;
	
	Фасет.Значение = ОбработкаПробельныхСимволовXS.Заменять;
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Заменять);
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "replace");

	Фасет.Значение = ОбработкаПробельныхСимволовXS.Сворачивать;
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Сворачивать);
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "collapse");

	Фасет.Значение = ОбработкаПробельныхСимволовXS.Сохранять;
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Сохранять);
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "preserve");

КонецПроцедуры

Процедура ТестЛексическоеЗначение() Экспорт

	Фасет = Новый ФасетПробельныхСимволовXS;
	
	Фасет.ЛексическоеЗначение = "replace";
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "replace");
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Заменять);

	Фасет.ЛексическоеЗначение = "collapse";
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "collapse");
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Сворачивать);
	
	Фасет.ЛексическоеЗначение = "preserve";
	ЮнитТест.ПроверитьРавенство(Фасет.ЛексическоеЗначение, "preserve");
	ЮнитТест.ПроверитьРавенство(Фасет.Значение, ОбработкаПробельныхСимволовXS.Сохранять);

КонецПроцедуры

Процедура ТестОпределениеПростогоТипа() Экспорт

	Фасет = Новый ФасетПробельныхСимволовXS;
	Фасет.ЛексическоеЗначение = "collapse";

	ОпределениеТипа = Новый ОпределениеПростогоТипаXS;
	ОпределениеТипа.Вариант = ВариантПростогоТипаXS.Атомарная;
	ОпределениеТипа.Фасеты.Добавить(Фасет);

	ЮнитТест.ПроверитьРавенство(Фасет.Контейнер, ОпределениеТипа);
	ЮнитТест.ПроверитьРавенство(Фасет.ОпределениеПростогоТипа, ОпределениеТипа);

КонецПроцедуры

#КонецОбласти